/**
 * 
 */
package com.proyecto.modelo;

import java.security.InvalidParameterException;
import java.util.Arrays;
import java.util.List;

public enum Rol {
	ADMIN(1, "ADMIN", "Administrador"),
	BASIC_USER(2, "BASIC_USER", "Usuario Basico"),
	PREMIUM_USER(3, "PREMIUM_USER", "Usuario Premium");
	
	private Integer id;
	private String valor;
	private String descripcion;
	
	private Rol(Integer id, String valor, String descripcion) {
		this.id = id;
		this.valor = valor;
		this.descripcion = descripcion;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getValor() {
		return valor;
	}

	public void setValor(String valor) {
		this.valor = valor;
	}

	public static Rol getRol(Integer tipo) {
		switch (tipo) {
		case 1:
			return ADMIN;
			case 2:
			return BASIC_USER;
			case 3:
			return PREMIUM_USER;
		default:
			throw new InvalidParameterException("Rol de Usuario desconocido: "
					+ tipo);
		}
	}

	/**
	 * @return the descripcion
	 */
	public String getDescripcion() {
		return descripcion;
	}

	/**
	 * @param descripcion the descripcion to set
	 */
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	
	public static List<Rol> getRoles(){
		return Arrays.asList(values());
	}

}
